#include<iostream>
#include<thread>
using namespace std;
#include<unistd.h>
#include<cstdio>

int g_val = 100;

// void *thread_routine(void *agrs)
// {
//     const char *name = (const char *)agrs;
//     while (true)
//     {
//         printf("%s, my g_val = %d, &g_val = %p\n", name, g_val++, &g_val);
//         sleep(1);
//     }
// }

void thread_run()
{
    const char *name = "l am a new thread......\n";
    while (true)
    {
        cout<<name;
        sleep(1);
    }
}

int main()
{
    thread t1(thread_run);

    while(true)
    {
        cout<<"我是主线程....."<<endl;
        sleep(1);
    }
    t1.join();

    return 0;
}

// linux下线程的使用

// #include <iostream>
// #include <pthread.h>
// #include <assert.h>
// #include <unistd.h>
// #include <cstdio>

// int main()
// {
//     pthread_t tid;
//     int n = pthread_create(&tid, nullptr, thread_routine, (void *)"thread one");
//     assert(n == 0);
//     (void)n;

//     while (true)
//     {
//         printf("我是主进程:val------>%d , &val------->%p\n", g_val, &g_val);
//         sleep(1);
//     }

//     return 0;
// }
